![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam dość nietypowy problem. Potrzebuję zebrać wszystkie wewnętrzne style CSS z dokumentu HTML i zapisać je do zewnętrznego arkuszu CSS. Podobna propozycja padła dla HTMLPurifier, ale jak widzę nikt się za to nie zabrał: http://htmlpurifier.org/docs/proposal-css-extraction.txt Czyli chodzi o taki efekt. Mamy następujący kod: I chcemy z niego pozyskać taki kod: + Kod #hp-12345 {text-align:center;} #hp-12346 {color:red;} Czy ktoś zna jakąś bibliotekę, która ma podobną funkcjonalność? Samemu trochę by się pisało coś takiego, a jest mi to niezbędnie potrzebne, niestety. Ten post edytował kilas88 17.05.2011, 01:13:14 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Generalnie nie powinno to być w najprostszej formie trudne do napisania. Przy pomocy DOMDocument::loadHTML() możesz operować na dokumencie HTML. Lecisz po wszystkich elementach sprawdzasz czy mają atrybut STYLE, jeżeli tak to:
1. Usuwasz go. 2. Jeżeli element nie ma atrybutu ID dodajesz jakiś tam losowy. 3. Na podstawie danych z pkt. 1 i 2 wygenerowanie treści CSS-a nie będzie trudne. Pamiętaj tylko, że taka modyfikacja może wpłynąć na kod, ponieważ oba zapisy nie będą równoznaczne. Powinieneś mieć na uwadze, że jakiś kod CSS czy JS może polegać na istnieniu / braku atrybutu STYLE / ID. Dodatkowo CSS w zew. arkuszu ma inną "siłę" niż ten wpisany bezpośrednio w atrybut STYLE. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie robię to co napisałeś, tzn.
itp itd W sumie widzę, że nie jest trudno wyodrębnić ten kod CSS. Nie muszę się obawiać o wcześniej nadane zewnętrzne style, gdyż ich po prostu nie ma. Piszę aplikację, która pobiera książki DOC/DOCX i konwertuje do HTML (przy pomocy Zend_Service_LiveDocx_MailMerge, który niestety wszystkie style wrzuca bezpośrednio w HTML). Czyli całość kodu CSS jest wyłącznie w pliku HTML, a musi być w zewnętrznym pliku CSS (takie mają wymagania książki na Kindle). Pewnie już ludzie pisali podobne rzeczy (nie ma problemu, który nie został już rozwiązany ![]() Ten post edytował kilas88 17.05.2011, 01:34:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 01:58 |